package com.example.travel.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;

/**
 * 功能：
 * 作者：lln
 * 日期：2025/3/17 13:04
 */
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

    @Override
    public void configureMessageBroker(MessageBrokerRegistry config) {
        // 配置消息代理，用于广播消息
        config.enableSimpleBroker("/topic"); // 客户端订阅的地址前缀
        // 配置应用前缀，所有以 "/app" 开头的请求都会被处理为消息
        config.setApplicationDestinationPrefixes("/app"); // 客户端发送消息的地址前缀
    }

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        // 注册 WebSocket 端点，并启用 SockJS 支持
        registry.addEndpoint("/ws"); // WebSocket 连接端点
//                .setAllowedOrigins("*") // 允许所有来源
//                .withSockJS(); // 启用 SockJS 支持
    }
}
